<?php 

require_once(dirname(__FILE__)."/../Models/LoginModel.php");
require_once(dirname(__FILE__)."/../Views/LoginView.php");
require_once ("IController.php");
require_once(dirname(__FILE__)."/../Models/ValidationModel.php");

class LoginController implements IController{

	private $m_loginModel;
                
	public function __construct(LoginModel $loginModel){
		$this->m_loginModel = $loginModel;
	}

	public function CreateController() {
		$loginView = new LoginView();
		$validate = new validate();
		$name = $loginView->GetUserName();
		$password = $loginView->GetPassword();
		$output = "";

		// Här händer det grejer! Här kollas det om en användare är inloggad,
		// eller oinloggad och gör därefter massa jämförelser och frågor för 
		// att tillslut visa sidan rätt. 
		
		// Om användaren är inloggad....
		if($this->m_loginModel->IsLoggedIn()) {
			
			// /// ...kollar om användaren klickat på radera
			// if($loginView->TriedDeleteUser()){
				// $this->m_loginModel->DeleteUser($name);
				// $this->m_loginModel->DoLogout();
				// $loginView->DestroyCookie();
				// $output .= $loginView->DeleteSuccessful();
			// }
			
			// ...kollar om användaren klickat på logout
			if($loginView->TriedToLogout()){
				$this->m_loginModel->DoLogout();
				$loginView->DestroyCookie();
				$output .= $loginView->SuccessfulLogout();
			}
		}
		// Om användaren inte är inloggad...
		else { 
			// ...kollar om användaren klickat på login
			if($loginView->TriedToLogin()){
				
				if($validate->validatePassword($name) && $validate->validatePassword($password)){
					// md5 omvandlar lösenordet till en sträng på 32 tecken, vilket gör det svårare att stjäla lösenord om någon kommer över databasen.
					if($this->m_loginModel->DoLogin($name, md5($password))) {
						if($loginView->RememberMe()) {
							$loginView->CreateCookie($name, md5($password));
						}
					}
					else {
						$output .= $loginView->WrongLogin();
					}
				}
				else {
					$output .= $loginView->ValidationError();
				}
			}
		}
		if ($this->m_loginModel->IsLoggedIn()) {
			$output .= $loginView->SuccessfulLogin($name);
			$output .= $loginView->DoLogoutBox();
			//$output .= $loginView->DoDeleteUserBox();
			
		}
		else {
			$output .= $loginView->DoLoginBox();
		}
		return $output;
	}
	
}